<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    1.find方法:
    按照我们的条件来查找数组中满足条件的第一项
    接收一个函数作为参数
    这个函数的参数有3个
    值,索引,数组本身
    可以使用return
    <script>
        var arr=[1,2,3,4,5,6,7,8,9];
        var result=arr.find(function(value,index,array){
            return value%2==0
        })
        console.log(result);
    </script>

    2.findIndex
    按照我们的条件来查找数组中满足条件的第一项的索引
    接收一个函数作为参数
    这个函数的参数有3个
    值,索引,数组本身
    可以使用return
    <script>
        var arr1=[1,2,3,4,5,6,7,8,9];
        var result1= arr1.findIndex(function(value,index,array){
            return value%3==0
        })
        console.log(result1);
    </script>

    3.includes() 是否包含,包含返回true,不包含返回一个false
    找数组中是否存在某个数组项,返回的布尔值
    <script>
         var arr2=[1,2,3,4,5,6,7,8,9];
         console.log(arr2.indexOf(5));//返回这一项的索引,4
         console.log(arr2.includes(5));//true
         console.log(arr2.includes(25));//false
    </script>

    数组去重
    <script>
        var arr4=[22,22,33,22,22,7,8,8,8,9,0];
        var newarr=[];
        for(var i=0;i<arr.length;i++){
            if(!newarr.includes(arr4[i])){
                newarr.push(arr4[i])
            }
        }
        console.log(newarr);

    </script>

    4.reduce方法(迭代生成数组或者对象)
    归并方法,整个数组迭代一个结果
    reduce方法的第一个参数依然是一个函数,但是做参数的这个函数,里面有4个参数
    因为res第一个数.开始迭代就是从1往后就是2
    reduce方法的第二个参数是迭代的初始值
    注意:叠加条件以return 形式去书写
    <script>
        // 4-1.reduce只有一个参数的情况
        // 只有一个参数的情况,value从第2个开始算
        var arr5=[1,2,3,4,5,6,7,8,9];
        var result=arr5.reduce(function(res,value,index,array){
            // console.log(res);//第一次指向的数组的第一项,后面是迭代的结果 1
            // console.log(value);//2开始,2-9
            // console.log(index);//1-8
            // console.log(array);//数组
            // console.log(res+"|"+value);
            return res+value 
        })
        // console.log(result);
        
    </script>

    4-2 reduce里面有2个参数
    100是第二个参数,
    相当于是数组的第一项,从100往后算,[100,1,2,3,4,5,6,7,8,9];
    但是索引从0开始
    <script>
        var arr6=[1,2,3,4,5,6,7,8,9];
        var result=arr6.reduce(function(res,value,index,array){
            console.log(res);//100,第一次指向的是reduce第二个参数,100就是迭代的值
            console.log(value);//1-9 从数组的第一项开始
            console.log(index);//0-8
            console.log(res+"|"+value);
            return res+value
        },100)
        console.log(result);
    </script>
</body>
</html>